Vega-Lite文档: 04_trigger_projection

Offical documentation

Triggers 触发器

在满足特定条件时动态更新数据集或标记项目。

属性

PTD
triggerExpression必需项, 触发条件表达式
insertExpression要插入的数据对象表达式, 适用于data set
removeExp|Boolean要删除的数据对象表达式, 如果是true则删除所有现有数据对象; 如果是表达式, 则表达式的结果视为predicate specification, 删除属性值与输入对象匹配的数据对象
toggleExp切换数据
modifyExp修改数据
valuesExp计算结果为name-value键值对的表达式, 根据返回结果更新字段值

例子

json

"data": [
  ...
  {
    "name": "selected",
    "on": [
      {"trigger": "!shift", "remove": true},
      {"trigger": "!shift && clicked", "insert": "clicked"},
      {"trigger": "shift && clicked", "toggle": "clicked"}
    ]
  }
]

json

以上内容定义了如下触发规则:

  • 单击选中项, 删除数据

  • 没按shift(!shift)+点击, 增加标记为选中项

  • shift+点击, 切换数据对象

json

"type": "symbol",
  "from": {"data": "nodes"},
  "encode": {...},
  "on": [
    {
      "trigger": "dragged",
      "modify":  "dragged",
      "values":  "{fx: x(), fy: y()}"
    }
  ]

json
以上内容将dragged信号引用的标记项的fx,fy设置为当前鼠标位置。

Projections 投影

将经纬度投影到(x,y)坐标, 使用GeoJSON格式表示的地理区域